package com.br.extreme.smartstock.service;

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.ProgressDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.AsyncTask;

import com.br.extreme.smartstock.model.ProdutoDTO;

public class CadastrarStockService extends AsyncTask<ProdutoDTO, Void, Void> {

	private static final String SERVICE_PATH = "StockService/stock/cadastrar";
	private SharedPreferences sharedPreferences;
	private ProgressDialog progress;
	private Context context;

	public CadastrarStockService(Context context, SharedPreferences sharedPreferences) {
		this.context = context;
		this.sharedPreferences = sharedPreferences;
	}

	@Override
	protected void onPreExecute() {
		progress = ProgressDialog.show(context, "SmartStock", "Enviando cadastro");
	}
	
	@Override
	protected void onPostExecute(Void result) {
		progress.dismiss();
		super.onPostExecute(result);
	}
	
	@Override
	protected Void doInBackground(ProdutoDTO... params) {
		if (params.length > 0) {
			try {
				ProdutoDTO produto = params[0];
				HttpClient client = new DefaultHttpClient();
				String server = sharedPreferences.getString("server", "locahost");
				String portNumber = sharedPreferences.getString("portNumber", "8080");
				Uri uri =  Uri.parse("http://" + server + ":"+ portNumber+"/" + SERVICE_PATH).buildUpon()
								.appendQueryParameter("codigo", produto.getCodigo().toString())		
								.appendQueryParameter("barras", produto.getBarras())
								.appendQueryParameter("descricao", produto.getDescricao())
								.appendQueryParameter("valor", produto.getValor().toString())
								.appendQueryParameter("quantidade", produto.getQuantidade().toString())
								.appendQueryParameter("ncm", produto.getNcm().toString())
								.appendQueryParameter("icms", produto.getIcms().toString())
								.appendQueryParameter("cfop", produto.getCfop().toString())
								.appendQueryParameter("cst", produto.getCst().toString())
								.build();
				
				HttpGet httpGet = new HttpGet(uri.toString());
				client.execute(httpGet);													
			} catch (Exception e) {
				e.printStackTrace();
			}
			return null;	
		}
		return null;
	}
	
	
	
	/*protected ProdutoDTO doInBackground(String... params) {
		if (params.length > 0) {
			try {
				String barras = params[0];
				HttpClient client = new DefaultHttpClient();
				String server = sharedPreferences.getString("server", "locahost");
				String portNumber = sharedPreferences.getString("portNumber", "8080");
				Uri uri =  Uri.parse("http://" + server + ":"+ portNumber+"/" + SERVICE_PATH).buildUpon()
								.appendQueryParameter("barras", barras)
								.build();
				
				HttpGet httpGet = new HttpGet(uri.toString());
				HttpResponse response = client.execute(httpGet);
				ProdutoDTO produto = GsonUtil.getJsonResult(response, ProdutoDTO.class);					
				return produto;	
			} catch (Exception e) {
				e.printStackTrace();
			}
			return null;	
		}
		return null;
	}*/

	
}
